'use strict';
/**
 * 标签管理
 * @param  {[type]} app      [description]
 * @param  {[type]} settings [description]
 * @return {[type]}          [description]
 */
module.exports = function(app, settings) {
	var debug = require('debug')('qywx-api'),
		express = require('express'),
		util = require('util'),
		url = require('url'),
		QywxAPI = require('../utils/QywxAPI')();
	var router = express.Router();

	/**
	创建标签
	  params{
	      参数	必须	说明
	      access_token	是	调用接口凭证
	      tagname	是	标签名称，长度为1~64个字节，标签名不可与其他标签重名。
	      tagid	否	标签id，整型，指定此参数时新增的标签会生成对应的标签id，不指定时则以目前最大的id自增。
	  }
	*/
	router.post('/create', (req, res) => {
		let accessToken = res.locals.account.accessToken;
		let tagname = req.body.tagname;
		let tagid = req.body.tagid;

		QywxAPI.createTag(accessToken, tagname, tagid, function(err, data) {
			if (err) {
				return res.status(500).json({
					success: false,
					errCode: 500,
					errMsg: err.message
				});
			}
			return res.status(200).json({
				success: true,
				data: data
			});
		});

	})

	/**
	更新标签
	  params{
	      参数	必须	说明
	      access_token	是	调用接口凭证
	      tagname	是	标签名称，长度为1~64个字节，标签名不可与其他标签重名。
	      tagid	否	标签id，整型，指定此参数时新增的标签会生成对应的标签id，不指定时则以目前最大的id自增。
	  }
	*/
	router.post('/update', (req, res) => {
			let accessToken = res.locals.account.accessToken;
			let tagname = req.body.tagname;
			let tagid = req.body.tagid;

			QywxAPI.updateTag(accessToken, tagname, tagid, function(err, data) {
				if (err) {
					return res.status(500).json({
						success: false,
						errCode: 500,
						errMsg: err.message
					});
				}
				return res.status(200).json({
					success: true,
					data: data
				});
			});

		})
		/**
		获取标签列表
		  params{
		      参数	必须	说明
		      access_token	是	调用接口凭证
		  }
		*/
	router.get('/list', (req, res) => {
			let accessToken = res.locals.account.accessToken;
			QywxAPI.getTagList(accessToken, function(err, data) {
				if (err) {
					return res.status(500).json({
						success: false,
						errCode: 500,
						errMsg: err.message
					});
				}
				return res.status(200).json({
					success: true,
					data: data.taglist
				});
			});


		})
		/**
		获取标签成员
		  params{
		      参数	必须	说明
		    access_token	是	调用接口凭证
		    tagid	是	标签ID
		  }
		*/
	router.get('/get', (req, res) => {
			let accessToken = res.locals.account.accessToken;
			let tagid = req.query.tagid;
			QywxAPI.getTagMemberList(accessToken, tagid, function(err, data) {
				if (err) {
					return res.status(500).json({
						success: false,
						errCode: 500,
						errMsg: err.message
					});
				}
				return res.status(200).json({
					success: true,
					data: data
				});
			});


		})
		/**
		删除标签
		  params{
		    参数	必须	说明
		    access_token	是	调用接口凭证
		    tagid	是	标签ID
		  }
		*/
	router.get('/delete', (req, res) => {
		let accessToken = res.locals.account.accessToken;
		let tagid = req.query.tagid;
		QywxAPI.deleteTag(accessToken, tagid, function(err, data) {
			if (err) {
				return res.status(500).json({
					success: false,
					errCode: 500,
					errMsg: err.message
				});
			}
			return res.status(200).json({
				success: true,
				data: data
			});
		});


	})



	app.use('/tag', router);

}